package main

import (
	"fmt"
	"monitor/src"
	"monitor/src/mysql"
	"monitor/src/service"
	"os"
	"time"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
	fmt.Println("计算机资源监控，请勿关闭....")
	var db = mysql.New()
	if db == nil {
		fmt.Println("连接数据库失败。。程序将在5秒后退出。。。")
		time.Sleep(time.Second * 5)
		os.Exit(-1)
	}

	var ipChan = make(chan string)
	var sourceChan = make(chan string)

	go src.GetIP(ipChan)
	localIP := <-ipChan

	// 判断是否存在表
	var tableRes = mysql.TableIsExist(db, localIP)
	if !tableRes {
		// 不存在则创建
		var createRes = mysql.CreateTable(db, localIP)
		if !createRes {
			fmt.Println("创建表失败")
			return // 创建表失败则无法进行下去了
		}
	}

	service.DeleteEveryday(db, localIP) // 启动定时任务，删除超过一天的时间的数据

	// 一直写数据
	for {
		go service.GetSource(sourceChan)
		sourceString := <-sourceChan
		var curTime = time.Now().Format("2006-01-02 15:04:05") // GO 诞生时间，不能改
		var insertRes = mysql.InsertSource(db, localIP, curTime, sourceString)
		if !insertRes {
			fmt.Println("插入数据失败！")
			mysql.Check(db) // 重连数据库
		}
	}
}
